/*
 * @Description: 1015 德才论 (25 point(s))
 * @Autor: kaikaima
 * @Date: 2021-03-01 10:26:58
 * @LastEditors: kaikaima
 * @LastEditTime: 2021-03-01 10:28:42
 */
/*宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”：“是故才德全尽谓之圣人，才德兼亡谓之愚人，德胜才谓之君子，才胜德谓之小人。凡取人之术，苟不得圣人，君子而与之，与其得小人，不若得愚人。”
  现给出一批考生的德才分数，请根据司马光的理论给出录取排名。
  输入格式：
  输入第一行给出 3 个正整数，分别为：N（≤10​5​​），即考生总数；L（≥60），为录取最低分数线，即德分和才分均不低于 L 的考生才有资格被考虑录取；H（<100），为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”，此类考生按德才总分从高到低排序；才分不到但德分到线的一类考生属于“德胜才”，也按总分排序，但排在第一类考生之后；德才分均低于 H，但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者，按总分排序，但排在第二类考生之后；其他达到最低线 L 的考生也按总分排序，但排在第三类考生之后。
  随后 N 行，每行给出一位考生的信息，包括：准考证号 德分 才分，其中准考证号为 8 位整数，德才分为区间 [0, 100] 内的整数。数字间以空格分隔。
  输出格式：
  输出第一行首先给出达到最低分数线的考生人数 M，随后 M 行，每行按照输入格式输出一位考生的信息，考生按输入中说明的规则从高到低排序。当某类考生中有多人总分相同时，按其德分降序排列；若德分也并列，则按准考证号的升序输出。*/

#include <iostream>
#include <algorithm>
#include <vector>

typedef struct student
{
    unsigned int id;
    int de;
    int cai;
    char lei;
}STU;

bool compare(STU _a, STU _b){
    if(_a.lei!=_b.lei) return _a.lei<_b.lei;
    else if((_a.de+_a.cai)!=(_b.de+_b.cai)) return (_a.de+_a.cai)>(_b.de+_b.cai);
    else if(_a.de!=_b.de) return _a.de>_b.de;
    else return _a.id<_b.id;
};

void output(STU _a){
    std::cout<<_a.id<<" "<<_a.de<<" "<<_a.cai<<std::endl;
};

int main (int argc, char* argv[]){
    int n,L,H; std::cin>>n>>L>>H;
    std::vector<STU> arr;
    arr.clear();
    STU tmp;
    int number=0;
    for(int i=0;i<n;i++){
        std::cin>>tmp.id;
        std::cin>>tmp.de>>tmp.cai;
        if(tmp.de>=L&&tmp.cai>=L){
            number++;
            if(tmp.de>=H&&tmp.cai>=H) tmp.lei='A';
            else if(tmp.de>=H) tmp.lei='B';
            else if(tmp.de>=tmp.cai) tmp.lei='C';
            else tmp.lei='D';
            arr.push_back(tmp);
        }
    }
    std::stable_sort(arr.begin(), arr.end(), compare);
    std::cout<<number<<std::endl;
    std::vector<STU>::iterator it;
    for(it=arr.begin();it!=arr.end();it++) output(*it);
    return 0;
}